-- msg_relogin
-- Create by weism
-- 通知重新登录结果

return function(lpc)
    local code = lpc.code;
    local sync = lpc.sync;

    closeCommunicatingForm();

    if (code == 1) then
        -- 重新登录成功了，标记下
        cclog("后台重登录成功。");
        ME.isInGame = true;

        -- 解锁
        SyncM.reloginUnlock(sync);

        -- 需要同步一次
        if SyncM.needSync() then
            SyncM.startSync();
        end

        -- 地牢数据同步尝试
        LoginM.syncData();

        -- 重新请求体力剩余恢复时间
        -- 调用体力恢复函数，如果时间还没到，会返回剩余时间
        Operation.cmd_try_life_recovery();

        -- 设置玩家操作检查相关
        LoginM.setShowDisconnectTip(true);
        local uiMainMap = UIMgr:getCurrentScene():getFormByName("UIMainMap");
        if uiMainMap then
            -- 继续开始计时
            uiMainMap:checkUserAction();
        end

        -- 同步服务器时间
        TimeM.sync();

        EventMgr.fire(event.RELOGIN_OK);

        return;
    end

    ME.stopGame();

    -- TODO: 登录失败了，需要退回到登录界面
    Socket.disconnect();
    -- alert(getLocStr("revalidation"));
end
